package org.hk.kg.finance.costype.service;

import java.util.List;
import java.util.Map;

import org.hk.kg.db.IDBService;
import org.hk.kg.db.annotations.StatusMsg;
import org.hk.kg.db.annotations.Transaction;
import org.hk.kg.finance.FinanceConstants;

public interface ICostypeService extends IDBService {
	/**
	 * 添加新的收费项目
	 * @param costTypeName
	 * @param costTypeKind
	 * @param isActive
	 * @return
	 */
	@Transaction
	@StatusMsg(
			beginMsg=FinanceConstants.MSG_COSTYPE_INSRT_BEGIN,
			endMsg=FinanceConstants.MSG_COSTYPE_INSRT_END,
			errMsg=FinanceConstants.MSG_COSTYPE_INSRT_ERROR
	)
	public boolean createCostType(String costTypeName,int costTypeKind,boolean isActive);
	
	@StatusMsg(
			beginMsg=FinanceConstants.MSG_COSTYPE_QRY_BEGIN,
			endMsg=FinanceConstants.MSG_COSTYPE_QRY_END,
			errMsg=FinanceConstants.MSG_COSTYPE_QRY_ERROR
	)
	public List<Map> queryCostTypes();
	
	@StatusMsg(
			beginMsg=FinanceConstants.MSG_COSTYPE_DEL_BEGIN,
			endMsg=FinanceConstants.MSG_COSTYPE_DEL_END,
			errMsg=FinanceConstants.MSG_COSTYPE_DEL_ERROR
	)
	public boolean deleteCostType(int costTypeId);
	
	@Transaction
	@StatusMsg(
			beginMsg=FinanceConstants.MSG_COSTYPE_UPT_BEGIN,
			endMsg=FinanceConstants.MSG_COSTYPE_UPT_END,
			errMsg=FinanceConstants.MSG_COSTYPE_UPT_ERROR
	)
	public boolean updateCostTypes(List<Map> params);
}
